A typical data management system includes a front end component and a back end component. The front end component includes one or more client applications (e.g., web browsers and/or special purpose client applications) that generate data request (e.g., read and/or write data items) and transfer these requests to the back end component. The back end component processes the data requests, looks up a search index, and accesses a data repository to store or retrieve the requested data items.
In some enterprise data management systems, a single data repository may not be able to handle all the data items generated by the front end component. Additionally, the search index may contain a large amount of data that cannot be easily managed by a single server. Thus, it becomes crucial to be able to distribute the data items and the search index across multiple storage locations that are managed by multiple servers in an efficient manner.